home *** CD-ROM | disk | FTP | other *** search
- // -------------------------------------------------------------------------------------
- // ExecScrollText.h
- // -------------------------------------------------------------------------------------
- // Permission is granted to freely redistribute this source code, and to use fragments
- // of this code in your own applications if you find them to be useful. This class,
- // along with the source code, come with no warranty of any kind, and the user assumes
- // all responsibility for its use.
- // -------------------------------------------------------------------------------------
- #import <objc/Object.h>
-
- // --------------------------------------------------------------------------------
- // formatted text size limit for 'textPrintf'
- #define textStringSIZE 2048 // actual size cannot be known
-
- // --------------------------------------------------------------------------------
- // method name synonyms
- #define setAutoLF setAutoLineFeed
-
- // --------------------------------------------------------------------------------
- // errors passed by 'commandDidComplete:withError:' via 'runCommand:...'
- // Note: these codes may be shared by the running command which executes an exit(#)
- #define RUNCMD_STOPPED -1 // command stopped/aborted
- #define RUNCMD_SUCCESS 0 // executed/completed successfully
- #define RUNCMD_EXEC 255 // cannot execute execl shell
-
- // -------------------------------------------------------------------------------------
- // structures used internal to ScrollText
-
- /* text attributes */
- typedef struct textAttr_s {
- id fontId;
- int colorMode; // 0=none, 1=gray, 2=color
- NXColor color; // contains only gray if mode=1
- } textAttr_t;
-
- // --------------------------------------------------------------------------------
- @interface ExecScrollText : Object
- #ifdef RemoteClient_PROTOCOL
- <RemoteClient>
- #endif
- {
-
- id delegate; // delegate for ExecServer support
-
- id scrollView; // scroll view object
- id textView; // text view object
-
- textAttr_t runAttr; // newly added text attributes
-
- BOOL wasEditable; // scrollView was editable
- BOOL autoLf; // auto linefeed mode
-
- int cmdChild; // command execution
- int inputDescriptor; // input pipe
-
- }
-
- // --------------------------------------------------------------------------------
- + newExecScrollText:anObject;
- // Creates a new ExecScrollText object to handle text scrolling. anObject must be
- // a ScrollView object which has a Text content view. This is compatible
- // with the outlet provided by the text scroll view object in Interface Builder.
- //
- // --------------------------------------------------------------------------------
- - setDelegate:aDelegate;
- // Currently used for ExecServer support. Returns self.
- //
- // --------------------------------------------------------------------------------
- - setAutoLineFeed:(BOOL)mode;
- // Sets the autoLineFeed options. If set to YES, then a newLine will be sent
- // after each string written to the scroll text. The default is NO.
- //
- // --------------------------------------------------------------------------------
- - docView;
- // Returns the ScrollView docView.
- //
- // --------------------------------------------------------------------------------
- - scrollView;
- // Returns the ScrollView id.
- //
- // --------------------------------------------------------------------------------
- - setTextAttributeFont:fontId;
- - setTextAttributeGray:(float)aGray;
- - setTextAttributeColor:(NXColor)aColor;
- // Set RTF font/gray run attributes for newly added text.
- //
- // --------------------------------------------------------------------------------
- - setTabStops:(float*)tabArray count:(int)c;
- - setTab:(float)tabSize count:(int)c;
- // Set default tabs stops. 'setTabStops:count:' set the default tabs to those
- // specified in the array 'tabArray'. 'setTab:count:' sets the default tabs to
- // multiples of 'tabSize'. Both return self.
- //
- // --------------------------------------------------------------------------------
- - clearScrollText;
- // This clears the contents of the Text ScrollView. Returns self.
- //
- // --------------------------------------------------------------------------------
- - (int)textPrint:(const char*)buffer;
- - (int)textPrintf:(const char*)fmt args:(va_list)args;
- - (int)textPrintf:(const char*)fmt, ...;
- // Appends the specified formated string to the contents of the ScrollView.
- //
- // --------------------------------------------------------------------------------
- - runCommand:(const char*)command;
- - terminateCommand;
- - killCommand;
- // Allows running a command shell and using the scrollable text view to place the
- // output. The delegate is sent the message commandDidComplete:withError: when
- // the command has completed execution.
- //
- // --------------------------------------------------------------------------------
- - (void)commandOutput:(const char*)buffer len:(int)len;
- - (void)commandDidCompleteWithError:(int)errorCode;
- // Provides support for ExecServer.
- //
- // --------------------------------------------------------------------------------
-
- @end
-